package com.example.web.config;

import org.springframework.boot.SpringBootConfiguration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author 徐一杰
 * @date 2022/9/23 16:49
 * @description
 */
@SpringBootConfiguration
@EnableWebMvc
public class SaTokenConfigure implements WebMvcConfigurer {

    /**
     * 注册 Sa-Token 拦截器，打开注解式鉴权功能
     * 如果在高版本 SpringBoot (≥2.6.x) 下注册拦截器失效，则需要额外添加 @EnableWebMvc 注解才可以使用
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
//        registry.addInterceptor(new SaInterceptor(handler -> {
//                    // 修正路由匹配逻辑，使用链式排除
//                    SaRouter.match("/**")
//                            .notMatch("/user/login", "/user/register", "/user/deliver")  // 正确排除登录注册接口
//                            .check(r -> StpUtil.checkLogin());
//
//                    // 角色权限检查保持原样...
//                    SaRouter.match("/admin/**", r -> StpUtil.checkRoleOr("admin", "super-admin"));
//                    SaRouter.match("/user/**")
//                            .notMatch("/user/login", "/user/register", "/user/deliver")
//                            .check(r -> {
//                                StpUtil.checkRoleOr("admin", "user");
//                            });
//
//                }).isAnnotation(true))
//                .addPathPatterns("/**")
//                .excludePathPatterns("/user/doLogin", "/user/register");  // 增加双重排除
    }
}

